package Single_redmoney;

import java.util.*;
import java.util.Map;
import java.util.stream.Collectors;

public class Single_red_money {
    public static void main(String[] args) {
        List<Integer> list = generateRedMoney();
        Map<String, Integer> map = new HashMap<>();
        for (int i = 0; i < 200; i++) {
            if (i < 100) {
                map.put("Player" + i, list.get(i));
            } else {
                map.put("Player" + (i - 100), map.get("Player" + (i - 100)) + list.get(i));
            }
        }
//        map.forEach((k,v)->System.out.println(k+":"+v));
        // 将Map转换为Entry列表并排序
         // 按金额升序排序（若要降序可加.reversed()）
        Map<String, Integer> sortedMapAsc = map.entrySet().stream()
                .sorted(Map.Entry.comparingByValue()) // 按值升序
                .collect(Collectors.toMap(
                        Map.Entry::getKey,
                        Map.Entry::getValue,
                        (oldVal, newVal) -> oldVal, // 解决键冲突（此处无需处理）
                        LinkedHashMap::new // 用LinkedHashMap保持排序后的顺序
                ));
        System.out.println("升序排序：");
        sortedMapAsc.forEach((k, v) -> System.out.println(k + ":" + v));
//        System.out.println("\n降序排序：");
//        sortedMapDesc.forEach((k, v) -> System.out.println(k + ":" + v));

    }

    public static List<Integer> generateRedMoney(){
        List<Integer> list = new ArrayList<>();
        for (int i = 0; i < 200; i++) {
            if (i < 160) {
                int n = (int) (Math.random() * 70) + 31;
                list.add(n);
            } else {
                int n = (int) (Math.random() * 30) + 1;
                list.add(n);
            }
        }
        Collections.shuffle(list);
        return list;
    }
}
